﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ForrajeriaDAL;
using ForrajeriaDB;
using System.Data;
namespace ForrajeriaBCL
{
    public class ProveedorBCL : InterfaceBCL<ProveedorMO>
    {
        private ProveedorDAL proveedorDAL;


        public ProveedorBCL()
        {
            proveedorDAL = ProveedorDAL.Instance; //consumiendo patron SINGLETON
        }


        public List<ProveedorMO> GetAll()
        {
            try
            {
                return proveedorDAL.GetAll();
            }
            catch (Exception ex)
            {
                Exception ez = new Exception("Error de conexion con la Base de Datos");
                throw (ez);
            }
        }


        public string Adicionar(ProveedorMO item)
        {
            try
            {
                {
                    proveedorDAL.Adicionar(item);
                }
                return "1";
            }
            catch (Exception ex)
            {
                return "Error de Escritura en base de Datos";
            }
        }

        public string Eliminar(ProveedorMO item)
        {
            try
            {
                proveedorDAL.Eliminar(item);
                return "1";
            }
            catch (Exception ex)
            {
                return "Error de Acceso a Base de Datos";
            }
        }

        public string Actualizar(ProveedorMO itemNuevo, ProveedorMO itemViejo)
        {
            try
            {
                proveedorDAL.Actualizar(itemNuevo, itemViejo);
                return "1";
            }
            catch (Exception ex)
            {
                return "Error Al modificar el Proveedor";
            }
        }

        public ProveedorMO getByID(int codigo)
        {
            try
            {
                return proveedorDAL.getByID(codigo);

            }
            catch (Exception ex)
            {
                throw new Exception("Error: " + ex.Message);
            }
        }

        public DataTable  getProveedorReporte(string Forra = "", int pro=0, string ordena= "" , string direc = "")
        {
            try
            {
                return proveedorDAL.getProveedorReporte(Forra, pro,ordena,direc);
            }
            catch(Exception ex)
            {
                throw ex;
            }
        }

    }
}
